/*
 * 1.00 2012/01/31
 *
 * Copyright (c) 2012 Motch_bs
 * All rights reserved.
 *
 * このソフトウェアは，Motch_bsに所有される機密情報である。
 * これらの機密情報を漏洩してはならず，Motch_bs の意図する
 * 認可の元においてこれを使用すべし。
 */
package jp.co.ufp.sevendaystask.storage;

import jp.co.ufp.sevendaystask.constants.C;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

/**
 * SQLクエリ発行クラス
 * 
 * @author Motch_bs
 * 
 */
public class QueryAction {

    /** データベース */
    private SQLiteDatabase database;

    /**
     * @param mDb
     */
    public QueryAction(SQLiteDatabase mDb) {
	super();
	this.database = mDb;
    }

    public int getCount(
	int position_week) {
	// 列を定義
	String[] columns = new String[] {
	    C.TASKID,
	    C.WEEKDAY,
	    C.TIME_START,
	    C.TIME_END,
	    C.TASK_TITLE,
	    C.TASK_MEMO,
	    C.TASK_COLOR
	};
	// where句
	String selection = C.WEEKDAY + " = ?";
	// where句の値
	String[] selectionArgs = {
	    Integer.valueOf(position_week).toString()
	};
	// データを取得
	Cursor cursor = database.query(
	    C.TABLE, columns, selection, selectionArgs, null, null, "TIME_START," + C.TASKID);
	int retCount = cursor.getCount();
	cursor.close();
	return retCount;
    }

    /**
     * 登録処理
     * 
     * @param cv
     * @return long
     */
    public long doInsert(
	ContentValues cv) {
	long ret = database.insert(C.TABLE, null, cv);
	return ret;
    }

    /**
     * 更新処理
     * 
     * @param cv
     * @param iId
     * @return int
     */
    public int doUpdaate(
	ContentValues cv, int iId) {
	String where = C.TASKID + " = ?";
	Integer id = Integer.valueOf(iId);
	String[] values = new String[] {
	    id.toString()
	};
	int ret = database.update(C.TABLE, cv, where, values);
	return ret;
    }

    /**
     * 削除処理
     * 
     * @param iId
     * @return int
     */
    public int doDelete(
	int iId) {
	String where = C.TASKID + " = ?";
	Integer id = Integer.valueOf(iId);
	String[] values = new String[] {
	    id.toString()
	};
	int ret = database.delete(C.TABLE, where, values);
	return ret;
    }
}
